home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #39 (Dec 88) / KeyEdDemo / KeyEdDemo.asm < prev    next >
Assembly Source File  |  1988-06-24  |  1KB  |  74 lines

  1. ;MDS source code for KeyEDDemo External procedures
  2. ;copyright F.Samuel and Mac Tutor 1988
  3. ; After compiling , turn the .rel file into a LSP
  4. ; library using rel.Converter , then include the lib
  5. ; into your LSP project 
  6.  
  7. ;MDS Glues for Pascal Peek and Poke
  8. ;procedure poke(address:ptr;value:byte)
  9. ;function peek(address:ptr): byte;
  10.  
  11. XDEF peek
  12. XDEF poke
  13.  
  14. value    EQU    8
  15. addr1    EQU    10
  16.  
  17. poke
  18.     LINK    A6,#0
  19.     MOVEA.L    addr1(A6),A0
  20.     MOVE    value(A6),D0
  21.     MOVE.B    D0,(A0)
  22.     UNLK    A6
  23.     MOVEA.L    (SP)+,A0
  24.     ADDQ.L    #6,SP
  25.     JMP    (A0)
  26.     
  27. addr2    EQU    8
  28. result    EQU    12
  29.     
  30. peek
  31.     LINK    A6,#0
  32.     MOVEA.L    addr2(A6),A0
  33.     MOVEQ    #0,D0
  34.     MOVE.B    (A0),D0
  35.     MOVE    D0,result(A6)
  36.     UNLK    A6
  37.     MOVEA.L    (SP)+,A0
  38.     ADDQ.L    #4,SP
  39.     JMP    (A0)
  40.         
  41. ; Function Key12Trans(KeyCode,KeyModifs:Integer) : Integer;
  42. ; KeyModifs are as they appear in the third word of KeyMap
  43. ; Function returns AsciiCode
  44.  
  45. XDEF        Key12Trans
  46.  
  47. Key1Trans    EQU    $29E
  48. Key2Trans    EQU    $2A2
  49.  
  50. KeyModifs    EQU    8
  51. KeyCode        EQU    10
  52. FunRslt        EQU    12
  53.  
  54. Key12Trans
  55.  
  56.     LINK    A6,#0
  57.     MOVEM.L    A0/D0-D3,-(SP)
  58.     MOVE    KeyCode(A6),D2
  59.     MOVE    KeyModifs(A6),D1
  60.     MOVEQ    #0,D3
  61.     CMPI    #64,D2
  62.     BHS.S    @1
  63.     MOVEA.L    Key1Trans,A0
  64.     BRA.S    @2
  65. @1    MOVEA.L    Key2Trans,A0
  66. @2    JSR    (A0)
  67.     MOVE    D0,FunRslt(A6)
  68.     MOVEM.L    (SP)+,A0/D0-D3
  69.     UNLK    A6
  70.     MOVEA.L    (SP)+,A0
  71.     ADDQ.L    #4,SP 
  72.     JMP    (A0)
  73.  
  74.